﻿#!/usr/bin/env python
# -*- coding: utf-8 -*-

import re
import random
import unittest
import sys

sys.path.append(r"../src/opt/qonso")

from QonsoExtractorBouygues import QonsoExtractorBouygues
from QonsoModel import QonsoModel

class TestExtractor(unittest.TestCase):
   def setUp(self):
      pass

   def tearDown(self):
      pass
      
   def test_timeRegex(self):
      ex = QonsoExtractorBouygues()
      r = ex.hmRe

      res = r.search("bla>1h20<bla")
      self.assertEqual(res.group(1).strip(), "1h20")
      res = r.search("bla>  1h20  <bla")
      self.assertEqual(res.group(1).strip(), "1h20")
      res = r.search("bla>1h20  <bla")
      self.assertEqual(res.group(1).strip(), "1h20")
      res = r.search("bla> 1h2<bla")
      self.assertEqual(res.group(1).strip(), "1h2")
      res = r.search("bla 1h 20 bla")
      self.assertEqual(res.group(1).strip(), "1h 20")
      res = r.search("bla 1 h20 bla")
      self.assertEqual(res.group(1).strip(), "1 h20")
     
      res = r.search("bla 1h20min bla")
      self.assertEqual(res.group(1).strip(), "1h20min")
      res = r.search("bla 1h20 min bla")
      self.assertEqual(res.group(1).strip(), "1h20 min")
      res = r.search("bla 1h 20min bla")
      self.assertEqual(res.group(1).strip(), "1h 20min")
      res = r.search("bla 1h 20 min bla")
      self.assertEqual(res.group(1).strip(), "1h 20 min")
      res = r.search("bla 1 h 20 min bla")
      self.assertEqual(res.group(1).strip(), "1 h 20 min")
      res = r.search("bla 1 h20 min bla")
      self.assertEqual(res.group(1).strip(), "1 h20 min")
      res = r.search("bla 1 h20min bla")
      self.assertEqual(res.group(1).strip(), "1 h20min")
      res = r.search("bla 1h20mn bla")
      self.assertEqual(res.group(1).strip(), "1h20mn")
      res = r.search("bla 1h20 mn bla")
      self.assertEqual(res.group(1).strip(), "1h20 mn")
      res = r.search("bla 1h 20mn bla")
      self.assertEqual(res.group(1).strip(), "1h 20mn")
      res = r.search("bla 1h 20 mn bla")
      self.assertEqual(res.group(1).strip(), "1h 20 mn")
      res = r.search("bla 1 h 20 mn bla")
      self.assertEqual(res.group(1).strip(), "1 h 20 mn")
      res = r.search("bla 1 h20 mn bla")
      self.assertEqual(res.group(1).strip(), "1 h20 mn")
      res = r.search("bla 1 h20mn bla")
      self.assertEqual(res.group(1).strip(), "1 h20mn")

      res = r.search("bla 2 h bla")
      self.assertEqual(res.group(1).strip(), "2")
      res = r.search("bla>2 h <bla")
      self.assertEqual(res.group(1).strip(), "2")
      res = r.search("bla> 2h<bla")
      self.assertEqual(res.group(1).strip(), "2")
      res = r.search("bla>2h<bla")
      self.assertEqual(res.group(1).strip(), "2")

      res = r.search("bla 58 min bla")
      self.assertEqual(res.group(1).strip(), "58 min")
      res = r.search("bla 58mn bla")
      self.assertEqual(res.group(1).strip(), "58mn")
      res = r.search("bla>58mn<bla")
      self.assertEqual(res.group(1).strip(), "58mn")
      res = r.search("bla 58 mn bla")
      self.assertEqual(res.group(1).strip(), "58 mn")
      res = r.search("bla 58 min bla")
      self.assertEqual(res.group(1).strip(), "58 min")

      res = r.search("bla>458mn<bla")
      self.assertEqual(res.group(1).strip(), "458mn")
      res = r.search("bla 458 mn bla")
      self.assertEqual(res.group(1).strip(), "458 mn")
      res = r.search("bla>458 min <bla")
      self.assertEqual(res.group(1).strip(), "458 min")

      res = r.search("Il vous reste  <b>1 h 30 mn</b>  de communication")
      self.assertEqual(res.group(1).strip(), "1 h 30 mn")
      